package leetcode_acm.array;

/**
 * 功能描述
 *
 * @author: 张庭杰
 * @date: 2023年03月20日 16:58
 */
public class SortedSquares {
    public int[] sortedSquares(int[] nums) {
        int n = nums.length;
        int[] ans = new int[n];
        int neg = -1;
        for(int i = 0;i < n;i++){
            if(nums[i] >= 0){
                neg = i;
                break;
            }
        }
        int l = neg-1,r = neg;
        for(int p = 0;p < n;p++){
            if(l < 0){
                ans[p++] = nums[r]*nums[r];r++;
            }else if(r >= n){
                ans[p++] = nums[l]*nums[l];l--;
            }else if(-nums[l] < nums[r]){
                ans[p++] = nums[l]*nums[l];l--;
            }else{
                ans[p++] = nums[r]*nums[r];r++;
            }
        }
        return ans;
    }
}
